// 定义一个函数，函数参数和返回值的类型要相同

/* function fn(temp: number): number {
  return 8
}
fn(123) */

/* function fn(temp: number | string): number | string {
  return 8
}
fn('abc') */

/* function fn(temp:any):any {
  return 8
}
fn('abc')
fn(123) */

function fn<T>(temp:T):T {
  return temp
}

fn<string>('abc')
fn<number>(123)

let num = 123
fn(num)

export {}